package com.rtx.wms.std.so.service;

import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.rtx.edi.model.api.bo.ApiMappingInfoBo;
import com.rtx.wms.std.so.bean.ApiOrdersCancel;
import com.rtx.wms.std.so.bean.Orderdetail;
import com.rtx.wms.std.so.bean.Orders;

import java.util.List;

public interface OrdersService {
    /**
     * 新增出库单
     * @param whseid
     * @param orders
     */
    void addOrders(String whseid, Orders orders,ApiMappingInfoBo bo);
    
    
    /**
     * 查询出库单
     * @param whseid
     * @param wrapper
     * @return
     */
    List<Orders> selectOrdersByWrapper(String whseid, Wrapper<Orders> wrapper);
    
    
    

    /**
     * 查询写入中间表出库单
     * @param whseid
     * @param wrapper
     * @return
     */
    List<Orders> selectFinishOrdersByWrapper(String whseid);

    /**
     * 更新出库单
     * @param whseid
     * @param wrapper
     */
    void updateByWrapper(String whseid, LambdaUpdateWrapper<Orders> wrapper);
    
    /**
     * 更新出库单明细
     * @param whseid
     * @param wrapper
     */
    void updatedetailByWrapper(String whseid, LambdaUpdateWrapper<Orderdetail> wrapper);

    /**
     * 更据外部单号处理存在的订单
     * @param whseid
     * @param externorderkey
     */
    void handlerExistsOrders(String whseid,String externorderkey);

//    /**
//     * 出库单取消
//     * @param whseid
//     * @param externorderkey
//     */
//    void ordersCancel(String whseid,String externorderkey);
    
    
    public String getwmwhseid(String datssourcekey,ApiOrdersCancel apiOrdersCancel,String customerid);
    
    /**
     * 查询没有明细数据
     * @param whseid
     * @param wrapper
     * @return
     */
    public List<Orders> selectOrderNotDetailByWrapper(String whseid, Wrapper<Orders> wrapper);
}
